1. Field of the Invention
This invention relates to a rendering system and, more particularly, to such a rendering system for processing a common rendering command packet in parallel by a plurality of processors.
2. Description of the Prior Art
One of existing procedures processes a common rendering command packet in parallel by a plurality of processors in order to improve the rendering capacity. In this specification, a rendering command packet GCP includes a rendering command GC and zero or more parameters GP as shown in FIG. 1. The rendering command GC designates an object to be rendered (for example, a triangle) as shown in FIG. 1. The parameters GP indicate vertices, color, Z-value, and so forth, as shown in FIG. 1. Each of these parameters: vertices, color, Z-value, and so on, is held in the form of a pair of data and an address assigned to a register for storing the data.
The existing rendering system is explained below with reference to FIGS. 1 to 3. Let the system use four processors, for example. FIG. 2 shows processors LP0, LP1, LP2, and LP3 coupled in parallel. A rendering command packet GCP is supplied to the respective processors LP0, LP1, LP2, and LP3 through a terminal 101 shown in FIG. 2. The processors LP0 to LP3 create, for example, a triangle TR10 shown in FIG. 3 on the basis of the rendering command packet GCP supplied. The triangle TR10 is created in such a manner that each of the processors LP0, LP1, LP2, and LP3 creates pixels PXij in an area assigned to it.
In FIG. 3, the abscissa is the X axis and the ordinate is the Y axis. Numerals attached to the X and Y axes indicate the coordinate data (X, Y) on the X-Y coordinate plane. The figure indicated by the rendering command packet is the triangle TR10 having pixels PX60, PX66, and PX06 as its vertices as shown in FIG. 3.
In FIG. 3, the processor LP0 creates corresponding pixels that are necessary for forming a triangle TR10 defined by indicated vertices when the Y coordinate data is "0", "4" and "8". For example, when the Y coordinate data is "0", a pixel PX60 in an area ARLP01 is created. When the Y coordinate data is "4", pixels PX24, PX34, PX44, PX54 and PX64 which form an area ARLP02 are created.
In the same manner, the other processors LP1, LP2 and LP3 also create pixels PXij in areas assigned to the respective processors LP1, LP2 and LP3. That is, the processor LP1 creates pixels that form areas ARLPll and ARLP12 when the Y coordinate data is "1", "5", . . . , respectively. The processor LP2 creates pixels that form areas ARLP21 and ARLP22 when the Y coordinate data is "2", "6", . . . , respectively. The processor LP3 creates pixels that form areas ARLP31, . . . when the Y coordinate data is "3", "7", . . . , respectively.
As described above, in the existing system configured to process a common rendering command packet GCP by a plurality of processors LP0 to LP3 in parallel, the processing of the image data by the plurality of processors LP0 to LP3 was executed in synchronization with each rendering command packet GCP as shown in FIG. 4.
FIG. 4 shows, at A, an aspect of processing of rendering command packets GCP1 to GCP4. FIG. 4 also shows, at B, operating periods of the processor LP0 and waiting periods in which the processor LP0 remains waiting until subsequent rendering command packet GCP is given; at C, such periods of the processor LP1; at D, such periods of the processor LP2; and at E, such periods of the processor LP3. In FIG. 4, boxes with symbols are periods in which rendering command packets GCP are processed, and hatched boxes are waiting periods.
It is shown in FIG. 4 that processing of image data in the plurality of processors LP0 to LP3 is executed in synchronization with each rendering command packet GCP. Therefore, in order to undertake processing of a subsequent rendering command packet GCP(i+1), it is essential that processing of a current rendering command packet GCP(i) be completed in all of the processors LP0 to LP3. As a result, it is difficult to remove or reduce the waiting time and hence to reduce the time for processing the entire image data. Additionally, for each rendering command packet GCP, the processing speed of the entire system is determined by a processor that needs the longest processing time.